/*日志等级模块：
    1、定义出日志系统所包含的所以日志等级
       UNKNOW = 0
       DEBUG, 调试等级的日志
       INFO, 提示等级的日志
       WARN, 警告等级的日志
       ERROR, 错误等级的日志
       FATAL, 致命错误等级的日志
       OFF, 设置成off时，所以日志都不能输出，等级最大
      每一个项目中都会设置一个默认的日志输出等级，只有输出的日志等级大于等于默认限制等级的时候才可以进行输出
    2、提供一个接口，将对应等级的枚举，转换为一个对应的字符串 
       DEBUG ---> "DEBUG"
*/


/*
    1.定义枚举类，枚举出日志等级
    2.提供转换接口：将枚举转换成对应字符串
*/
#ifndef _M_LEVEL_H__ //防止文件被重复包含
#define _M_LEVEL_H__
namespace bitlog
{
    class LogLevel
    {
    public:
        enum class value
        {
            UNKNOW = 0,
            DEBUG,
            INFO,
            WARN,
            ERROR,
            FATAL,
            OFF
        };
        static const char *toString(LogLevel::value level)
        {
            switch (level)
            {
            case LogLevel::value::DEBUG:
                return "DEBUG";
            case LogLevel::value::INFO:
                return "INFO";
            case LogLevel::value::WARN:
                return "WARN";
            case LogLevel::value::ERROR:
                return "ERROR";
            case LogLevel::value::FATAL:
                return "FATAL";
            case LogLevel::value::OFF:
                return "OFF";
            }
            return "UNKNOW";
        }
    };
}

#endif